﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MpSoft.Library.DAO.Products;
using MpSoft.Library.DTO;
using MpSoft.Basic.Configuration;

namespace MpSoft.Library.BUSS.Products
{
    #region  AttributeValue

    public class AttributeValueBUSS
    {
        private const string attributevalue_ALL_KEY = "Mp.attributevalue.all-{0}";
        private const string attributevalue_BY_ID_KEY = "Mp.attributevalue.id-{0}";

        private static void AttributeValueRemoveCache()
        {
            MpCache.RemoveByPattern(attributevalue_ALL_KEY);
            MpCache.RemoveByPattern(attributevalue_BY_ID_KEY);
        }

        public static int AttributeValue_Add(AttributeValue obj)
        {
            var result = AttributeValueDAO.AttributeValue_Add(obj);
            return result;
        }
        public static int AttributeValue_Update(AttributeValue obj)
        {
            var result = AttributeValueDAO.AttributeValue_Update(obj);
            return result;
        }

        public static int AttributeValue_Delete(int AttributeValueID)
        {
            var result = AttributeValueDAO.AttributeValue_Delete(AttributeValueID);
            return result;
        }

        public static AttributeValue AttributeValue_ByID(int AttributeValueID)
        {
            var list = AttributeValue_Select(AttributeValueID, -1, 0);
            if (list != null)
                return list.FirstOrDefault();
            return null;
        }

        public static List<AttributeValue> AttributeValue_ByAttributeID(int AttributeID)
        {
            var list = AttributeValue_Select(-1, AttributeID, 0);
            return list;
        }

        public static List<AttributeValue> AttributeValue_Select(int AttributeValueID, int AttributeID, int SortOrder)
        {
            return AttributeValueDAO.AttributeValue_Select(AttributeValueID, AttributeID, SortOrder);
        }

        public static List<AttributeValue> ProductAttribute_Select(int ProductID, int AttributeValueID, int SortOrder)
        {
            return AttributeValueDAO.ProductAttribute_Select(ProductID, AttributeValueID, SortOrder);
        }

        public static int ProductAttribute_Add(int PAID,int AttributeValueID, int ProductID)
        {
            return AttributeValueDAO.ProductAttribute_Add(PAID, AttributeValueID, ProductID);
        }

        public static int ProductAttribute_Update(int PAID, int AttributeValueID, int ProductID)
        {
            return AttributeValueDAO.ProductAttribute_Update(PAID, AttributeValueID, ProductID);
        }

        public static int ProductAttribute_Delete(int PAID)
        {
            return AttributeValueDAO.ProductAttribute_Delete(PAID); 
        }
    }

    #endregion
}
